package com.totalinlink.dsl.poi.constants

import org.apache.poi.ss.usermodel.CellStyle
import org.apache.poi.ss.usermodel.Font
import org.apache.poi.ss.usermodel.IndexedColors
import org.apache.poi.ss.usermodel.PrintSetup

/**
 * Created by wangguangyu on 15/6/2.
 */
class StyleWrapper {

    // alignment
    def static final short center     = CellStyle.ALIGN_CENTER
    def static final short left       = CellStyle.ALIGN_LEFT
    def static final short right      = CellStyle.ALIGN_RIGHT
    def static final short justify    = CellStyle.ALIGN_JUSTIFY
    def static final short fill       = CellStyle.ALIGN_FILL
    def static final short general    = CellStyle.ALIGN_GENERAL
    def static final short center_sel = CellStyle.ALIGN_CENTER_SELECTION

    // vertical alignment
    def static final short vertical_top     = CellStyle.VERTICAL_TOP
    def static final short vertical_bottom  = CellStyle.VERTICAL_BOTTOM
    def static final short vertical_center  = CellStyle.VERTICAL_CENTER
    def static final short vertical_justify = CellStyle.VERTICAL_JUSTIFY

    // border
    def static final short border_dash_dot            = CellStyle.BORDER_DASH_DOT
    def static final short border_dash_dot_dot        = CellStyle.BORDER_DASH_DOT_DOT
    def static final short border_dashed              = CellStyle.BORDER_DASHED
    def static final short border_dotted              = CellStyle.BORDER_DOTTED
    def static final short border_double              = CellStyle.BORDER_DOUBLE
    def static final short border_hair                = CellStyle.BORDER_HAIR
    def static final short border_medium              = CellStyle.BORDER_MEDIUM
    def static final short border_medium_dash_dot     = CellStyle.BORDER_MEDIUM_DASH_DOT
    def static final short border_medium_dash_dot_dot = CellStyle.BORDER_MEDIUM_DASH_DOT_DOT
    def static final short border_medium_dashed       = CellStyle.BORDER_MEDIUM_DASHED
    def static final short border_none                = CellStyle.BORDER_NONE
    def static final short border_slanted_dash_dot    = CellStyle.BORDER_SLANTED_DASH_DOT
    def static final short border_thick               = CellStyle.BORDER_THICK
    def static final short border_thin                = CellStyle.BORDER_THIN

    // colors
    def static final short black                 = IndexedColors.BLACK.index
    def static final short white                 = IndexedColors.WHITE.index
    def static final short red                   = IndexedColors.RED.index
    def static final short bright_green          = IndexedColors.BRIGHT_GREEN.index
    def static final short blue                  = IndexedColors.BLUE.index
    def static final short yello                 = IndexedColors.YELLOW.index
    def static final short pink                  = IndexedColors.PINK.index
    def static final short truquoise             = IndexedColors.TURQUOISE.index
    def static final short dark_red              = IndexedColors.DARK_RED.index
    def static final short green                 = IndexedColors.GREEN.index
    def static final short dark_blue             = IndexedColors.DARK_BLUE.index
    def static final short dark_yello            = IndexedColors.DARK_YELLOW.index
    def static final short violet                = IndexedColors.VIOLET.index
    def static final short teal                  = IndexedColors.TEAL.index
    def static final short grey_25_percent       = IndexedColors.GREY_25_PERCENT.index
    def static final short grey_50_percent       = IndexedColors.GREY_50_PERCENT.index
    def static final short cornflower_blue       = IndexedColors.CORNFLOWER_BLUE.index
    def static final short maroon                = IndexedColors.MAROON.index
    def static final short lemon_chiffon         = IndexedColors.LEMON_CHIFFON.index
    def static final short orchid                = IndexedColors.ORCHID.index
    def static final short coral                 = IndexedColors.CORAL.index
    def static final short royal_blue            = IndexedColors.ROYAL_BLUE.index
    def static final short light_cornflower_blue = IndexedColors.LIGHT_CORNFLOWER_BLUE.index
    def static final short sky_blue              = IndexedColors.SKY_BLUE.index
    def static final short light_turquoise       = IndexedColors.LIGHT_TURQUOISE.index
    def static final short light_green           = IndexedColors.LIGHT_GREEN.index
    def static final short light_yello           = IndexedColors.LIGHT_YELLOW.index
    def static final short pale_blue             = IndexedColors.PALE_BLUE.index
    def static final short rose                  = IndexedColors.ROSE.index
    def static final short lavender              = IndexedColors.LAVENDER.index
    def static final short tan                   = IndexedColors.TAN.index
    def static final short light_blue            = IndexedColors.LIGHT_BLUE.index
    def static final short aqua                  = IndexedColors.AQUA.index
    def static final short lime                  = IndexedColors.LIME.index
    def static final short gold                  = IndexedColors.GOLD.index
    def static final short light_orange          = IndexedColors.LIGHT_ORANGE.index
    def static final short orange                = IndexedColors.ORANGE.index
    def static final short blue_grey             = IndexedColors.BLUE_GREY.index
    def static final short grey_40_percent       = IndexedColors.GREY_40_PERCENT.index
    def static final short dark_teal             = IndexedColors.DARK_TEAL.index
    def static final short sea_green             = IndexedColors.SEA_GREEN.index
    def static final short dark_green            = IndexedColors.DARK_GREEN.index
    def static final short olive_green           = IndexedColors.OLIVE_GREEN.index
    def static final short brown                 = IndexedColors.BROWN.index
    def static final short plum                  = IndexedColors.PLUM.index
    def static final short indigo                = IndexedColors.INDIGO.index
    def static final short grey_80_percent       = IndexedColors.GREY_80_PERCENT.index
    def static final short automatic             = IndexedColors.AUTOMATIC.index

    // Whatever the printer's default paper size is
    def static final short printer_default_papersize = PrintSetup.PRINTER_DEFAULT_PAPERSIZE
    // US Letter 8 1/2 x 11 in
    def static final short letter_papersize = PrintSetup.LETTER_PAPERSIZE
    // US Letter Small 8 1/2 x 11 in
    def static final short letter_small_pagesize = PrintSetup.LETTER_SMALL_PAGESIZE
    // US Tabloid 11 x 17 in
    def static final short tabloid_papersize = PrintSetup.TABLOID_PAPERSIZE
    // US Ledger 17 x 11 in
    def static final short ledger_papersize = PrintSetup.LEDGER_PAPERSIZE
    // US Legal 8 1/2 x 14 in
    def static final short legal_papersize = PrintSetup.LEGAL_PAPERSIZE
    // US Statement 5 1/2 x 8 1/2 in
    def static final short statement_papersize = PrintSetup.STATEMENT_PAPERSIZE
    // US Executive 7 1/4 x 10 1/2 in
    def static final short executive_papersize = PrintSetup.EXECUTIVE_PAPERSIZE
    // A3 - 297x420 mm
    def static final short a3_papersize = PrintSetup.A3_PAPERSIZE
    // A4 - 210x297 mm
    def static final short a4_papersize = PrintSetup.A4_PAPERSIZE
    // A4 Small - 210x297 mm
    def static final short a4_small_papersize = PrintSetup.A4_SMALL_PAPERSIZE
    // A5 - 148x210 mm
    def static final short a5_papersize = PrintSetup.A5_PAPERSIZE
    // B4 (JIS) 250x354 mm
    def static final short b4_papersize = PrintSetup.B4_PAPERSIZE
    // B5 (JIS) 182x257 mm
    def static final short b5_papersize = PrintSetup.B5_PAPERSIZE
    // Folio 8 1/2 x 13 in
    def static final short folio8_papersize = PrintSetup.FOLIO8_PAPERSIZE
    // Quarto 215x275 mm
    def static final short quarto_papersize = PrintSetup.QUARTO_PAPERSIZE
    // 10 x 14 in
    def static final short ten_by_fourteen_papersize = PrintSetup.TEN_BY_FOURTEEN_PAPERSIZE
    // 11 x 17 in
    def static final short eleven_by_seventeen_papersize = PrintSetup.ELEVEN_BY_SEVENTEEN_PAPERSIZE
    // US Note 8 1/2 x 11 in
    def static final short note8_papersize = PrintSetup.NOTE8_PAPERSIZE
    // US Envelope #9 3 7/8 x 8 7/8
    def static final short envelope_9_papersize = PrintSetup.ENVELOPE_9_PAPERSIZE
    // US Envelope #10 4 1/8 x 9 1/2
    def static final short envelope_10_papersize = PrintSetup.ENVELOPE_10_PAPERSIZE
    // Envelope DL 110x220 mm
    def static final short envelope_dl_papersize = PrintSetup.ENVELOPE_DL_PAPERSIZE
    // Envelope C5 162x229 mm
    def static final short envelope_cs_papersize = PrintSetup.ENVELOPE_CS_PAPERSIZE
    def static final short envelope_c5_papersize = PrintSetup.ENVELOPE_C5_PAPERSIZE
    // Envelope C3 324x458 mm
    def static final short envelope_c3_papersize = PrintSetup.ENVELOPE_C3_PAPERSIZE
    // Envelope C4 229x324 mm
    def static final short envelope_c4_papersize = PrintSetup.ENVELOPE_C4_PAPERSIZE
    // Envelope C6 114x162 mm
    def static final short envelope_c6_papersize = PrintSetup.ENVELOPE_C6_PAPERSIZE

    def static final short envelope_monarch_papersize = PrintSetup.ENVELOPE_MONARCH_PAPERSIZE
    // A4 Extra - 9.27 x 12.69 in
    def static final short a4_extra_papersize = PrintSetup.A4_EXTRA_PAPERSIZE
    // A4 Transverse - 210x297 mm
    def static final short a4_transverse_papersize = PrintSetup.A4_TRANSVERSE_PAPERSIZE
    // A4 Plus - 210x330 mm
    def static final short a4_plus_papersize = PrintSetup.A4_PLUS_PAPERSIZE

    // US Letter Rotated 11 x 8 1/2 in
    def static final short letter_rotated_papersize = PrintSetup.LETTER_ROTATED_PAPERSIZE

    // A4 Rotated - 297x210 mm
    def static final short a4_rotated_papersize = PrintSetup.A4_ROTATED_PAPERSIZE


    // Normal boldness (not bold)
    def final static short boldweight_normal = Font.BOLDWEIGHT_NORMAL

    // Bold boldness (bold)
    def final static short boldweight_bold = Font.BOLDWEIGHT_BOLD

    // normal type of black color.
    def final static short color_normal = Font.COLOR_NORMAL

    // Dark Red color
    def final static short color_red = Font.COLOR_RED

    // no type offsetting (not super or subscript)

    def final static short ss_none = Font.SS_NONE

    // superscript
    def final static short ss_super = Font.SS_SUPER

    // subscript
    def final static short ss_sub = Font.SS_SUB

    // not underlined
    def final static byte u_none = Font.U_NONE

    // single (normal) underline
    def final static byte u_single = Font.U_SINGLE

    // double underlined
    def final static byte u_double = Font.U_DOUBLE

    // accounting style single underline
    def final static byte u_single_accounting = Font.U_SINGLE_ACCOUNTING

    // accounting style double underline
    def final static byte u_double_accounting = Font.U_DOUBLE_ACCOUNTING

    // ANSI character set
    def final static byte ansi_charset = Font.ANSI_CHARSET

    // Default character set.
    def final static byte default_charset = Font.DEFAULT_CHARSET

    // Symbol character set
    def final static byte symbol_charset = Font.SYMBOL_CHARSET

}